KEW_METHOD(kew_action_withContinuation)
{
    KewContinuationFrame frame;
    KewContinuationObject *continuation = (KewContinuationObject *) KewNewObject(&KewContinuationType);
    continuation->frame = &frame;
    frame.next_continuation = kew_top_continuation;
    frame.results = results;
    frame.number_of_results = num_results;
    kew_top_continuation = continuation;
    
    if (! sigsetjmp(frame.jump_buffer, 0)) {
        KewObject *send_args[1];
        send_args[0] = (KewObject *) continuation;
        KewSend(receiver, "do", send_args, 1, results, num_results);
    }
    
    continuation->frame = NULL;
    kew_top_continuation = frame.next_continuation;
}
